package com.telit.firecommand.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.telit.firecommand.dto.*;
import com.telit.firecommand.entity.GeoPkFdiRd;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface GeoPkFdiRdDao extends BaseMapper<GeoPkFdiRd> {

    List<GeoPkFdiRdAreaDto> statisticAreaByDJ(@Param("flag") Integer flag, @Param("dayFlag")  Integer dayFlag, @Param("date") String date, @Param("districtCode") String districtCode);

    List<GeoPkFdiRdHotPortAreaDto> statisticAreaByHotPortAndDJ(@Param("level") Integer level, @Param("dayFlag") Integer dayFlag, @Param("date") String dateFormatStr, @Param("countryName") String countryName, @Param("districtCode") String villageDistrictCode);

    List<CountryDto> selectCountryByYJID(@Param("yjid") String yjid, @Param("dayFlag") Integer dayFlag, @Param("districtCode") String villageDistrictCode);

    List<GeoPkFdiRdResponsibilityZoneDto> statisticAreaByResponsibilityZone(@Param("level") Integer level, @Param("dayFlag") Integer dayFlag, @Param("date") String date, @Param("countryName") String countryName, @Param("districtCode") String villageDistrictCode);

    List<String> selectYJIDList(@Param("dayFlag") Integer dayFlag,@Param("date")  String dateFormatStr,@Param("level") Integer level,@Param("countryCode") String countryCode);

    /**
     * 根据热点编号和村编号查询面积
     * @param dayFlag
     * @param cunCode
     * @param yjid
     * @return
     */
    List<GeoPkFdiRdAreaDto> selectMjByYjidAndCun(@Param("dayFlag")  Integer dayFlag,@Param("cunCode")String cunCode,
                                                 @Param("yjid") List<String> yjid,@Param("date")  String dateFormatStr);

    List<GeoPkFdiRdHotPortAreaNewDto> statisticAreaContainCunByHotPortAndDJ(@Param("level") Integer level, @Param("dayFlag") Integer dayFlag, @Param("date") String dateFormatStr, @Param("countryName") String countryName, @Param("districtCode") String villageDistrictCode);

    List<Map<String, String>> selectRdidByDateAndLevel(@Param("level") Integer level, @Param("dayFlag") Integer dayFlag, @Param("date") String dateFormatStr);
}
